#include <vector>

struct COperand
{
  enum Type
  {
    VOID,
    INT,
    FLOAT,
    BOOL,
    VAR
  };
  
  Type m_Type;
  int m_Val;
  
  COperand(Type type=VOID, int val=0):m_Type(type), m_Val(val) {} 
};

struct  Quaternion
{
  /*коды операций для тетрад*/
  enum OpCode
  {
  };

  OpCode code; //код операции
  COperand op1, op2; //два операнда
  COperand res; //адрес результата
};

std::vector<Quaternion> m_quaternions;

void pushQuaternion(const Quaternion& q)
{
  m_quaternions.push_back(q);
}

Quaternion popQuaternion()
{
  Quaternion q = m_quaternions.at(m_quaternions.size()-1);
  m_quaternions.pop_back();
  return q;
}
